import pkuseg
import numpy as np

def segmentPOS(input_path,output_path):
    pk2ha_dic = {
        'n': 'n',
        'nr': 'nh',
        'nr1': 'nh',
        'nr2': 'nh',
        'nrf': 'nh',
        'nrj': 'nh',
        'ns': 'ns',
        'nsf': 'ns',
        'nt': 'ni',
        'nz': 'nz',
        'nl': 'n',
        'ng': 'n',
        't': 'nt',
        'tg': 'nt',
        's': 'nl',
        'f': 'nd',
        'v': 'v',
        'vd': 'n',
        'vn': 'n',
        'vshi': 'v',
        'vyou': 'v',
        'vf': 'v',
        'vx': 'v',
        'vi': 'n',
        'vl': 'n',
        'vg': 'n',
        'a': 'a',
        'ad': 'd',
        'an': 'a',
        'ag': 'a',
        'al': 'a',
        'b': 'b',
        'bl': 'b',
        'z': 'n',
        'r': 'r',
        'rr': 'r',
        'rz': 'r',
        'rzt': 'nt',
        'rzs': 'nl',
        'rzv': 'v',
        'ry': 'r',
        'ryt': 'nt',
        'rys': 'nl',
        'ryv': 'v',
        'rg ': 'r',
        'm': 'm',
        'mq': 'm',
        'q': 'q',
        'qv': 'q',
        'qt': 'q',
        'd': 'd',
        'p': 'p',
        'pba': 'p',
        'pbei': 'p',
        'c': 'c',
        'cc': 'c',
        'u': 'u',
        'uzhe': 'u',
        'ule': 'u',
        'uguo': 'u',
        'ude1': 'u',
        'ude2': 'u',
        'ude3': 'u',
        'usuo': 'u',
        'udeng': 'u',
        'uyy': 'u',
        'udh': 'u',
        'uls': 'u',
        'uzhi': 'u',
        'ulian': 'u',
        'e': 'e',
        'y': 'e',
        'o': 'o',
        'h': 'h',
        'k': 'k',
        'x': 'nz',
        'xe': 'nz',
        'xs': 'nz',
        'xm': 'nz',
        'xu': 'nz',
        'w': 'wp',
        'wkz': 'wp',
        'wky': 'wp',
        'wyz': 'wp',
        'wyy': 'wp',
        'wj': 'wp',
        'ww': 'wp',
        'wt': 'wp',
        'wd': 'wp',
        'wf': 'wp',
        'wn': 'wp',
        'wm': 'wp',
        'ws': 'wp',
        'wp': 'wp',
        'wb': 'wp',
        'wh': 'wp',
        'g': 'g',
        'i': 'i',
        'R': 'h',
        'j': 'j',
        'l':'l'
    }

    lexicon = ['伴', '肌纤维母细胞样']

    seg = pkuseg.pkuseg(postag=True, model_name="medicine",user_dict=lexicon)  # 开启词性标注功能

    out = open(output_path,'w',encoding='utf-8')
    with open(input_path,'r',encoding='utf-8') as f:
        for line in f:
            line = line.replace('(','（')
            line = line.replace(')','）')
            text = seg.cut(line)
            for i, (word,tag) in enumerate(text, 1):
                tag = pk2ha_dic[tag]
                out.write("{}\t{}\t_\t{}\t{}\t_\n".format(i,word,tag,tag))
            out.write('\n')
    f.close()
    out.close()

segmentPOS('data/乳腺病理诊断数据','data/乳腺POS')